package com.eat.fish_service.netty_client.handler;

import com.eat.fish_service.netty_client.ManageConnections;
import com.eat.fish_service.netty_client.Message;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

/**
 * @author CZF
 * @create 2022-09-06 8:32
 */
@AllArgsConstructor
@Slf4j
public class GetSenorDataTask implements Runnable{

    ChannelHandlerContext ctx;

    @Override
    public void run() {
        System.out.println("问鱼缸: "+ctx+" 拿水质数据");
        System.out.println("通道是否移除："+ctx.isRemoved());
        System.out.println("连接是否正常："+ctx.channel().isActive());

        if(ctx.isRemoved()){  //如果ctx移除了，就是连接通道关闭，需要关闭这个定时任务，如果不关闭，可能会一直积累导致oom
            log.error(ctx+" 连接通道关闭，定时任务终止");
            //抛异常终止线程
            throw new RuntimeException();
        }

        Message message = new Message();
        message.setHead(new byte[]{6,6,6,6});
        message.setUpdate(new byte[]{1});  //建立连接更新一下数据
        ctx.writeAndFlush(message);

    }
}
